上一篇有說到監聽器會幫我們在特定時候做我們要做的事,那我們要怎麼創建一個監聽器呢!?
首先,先在src目錄下建立一個資料夾,裡面建立一個Class
接著,在class裡建立一個function,並在裡面寫自己要做的事情,並給予黑科技註解式寫法
<?php
namespace App\Doctrine;
use Doctrine\ORM\Mapping as ORM;
class TestListener
{
/**
* @ORM\PreUpdate
*/
public function preUpdateHandler(){
echo 12345;
}
}
提醒一下, 記得一定要import ORM 哦 !!! 不然就不能使用黑科技magic了
這邊的意思,就是指說,
在實體類update前,會去執行preUpdateHandle這個function,function名稱可以自己取,不會有任何影響
簡單創建完一個監聽器後,我們要開始來使用它了
要使用監聽器,我們必須先到service.yaml註冊,將它視為一個服務,才能使用在實體類上
註冊完以後,就可以在實體類上使用啦~
/**
*@ORM\EntityListeners({"App\Doctrine\TestListener"})
*
/
class Test{
}
括弧裡放的一樣式監聽器的路徑
其實說簡單點,監聽器也可以叫作觸發器,就是這個事件在什麼時候觸發這樣
這裡把監聽器講得看起來很簡單...
但其實真的在用的時候,function裡面的code會複雜很多,等等...
這不是廢話嗎?難道上戰場還有在那邊給你等一下的哦
這篇篇幅太短了,怕會被ban掉,就先偷提一下Validation (驗證) 好了~
一般我們在頁面上看到的輸入框,
像是在註冊帳號密碼的時候,會要你帳號至少輸入一個英文,密碼至少英文數字幾碼組合,或是欄位不可以為空白之類的,或是欄位的長度,html的input是可以幫我們做到些許的驗證的
但一些客製化的我們必須自己來,對...身為一個盡責的工程師..沒有的就是要自己來!!
驗證的話,symfony一樣有幫我們準備一些基本的可以用,
在第二篇的時候有提到,從toolbar可以看見表單submit後回傳的錯誤驗證,裡面的資訊包含驗證錯誤的欄位名稱,
驗證錯誤的訊息,而驗證錯誤的訊息可以透過翻譯檔案來根據語系翻譯成想要的語言
下一篇就要來講一些symfony提供我們可以使用的驗證及兩個簡單的客製化驗證,
還有如何將驗證錯誤的訊息加到翻譯檔裡~